From: Ray Strode Date: Sun, 28 Aug 2011 02:51:54 +0000 (-0400) Subject: modalDialog: fade in buttons when first showing them X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~7885 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=e8914c6699d97079ac3448608e16fdfffc4a09c1;p=gnome-shell.git modalDialog: fade in buttons when first showing them Right now, if buttons get set on a dialog after it is mapped, they just pop in instantly. We shouldn't have any harsh transitions like that, though. This commit changes the buttons to quickly fade in, instead. https://bugzilla.gnome.org/show_bug.cgi?id=657082 --- diff --git a/js/ui/modalDialog.js b/js/ui/modalDialog.js index 36743604e..effc5bed6 100644 --- a/js/ui/modalDialog.js +++ b/js/ui/modalDialog.js @@ -18,6 +18,7 @@ const Main = imports.ui.main; const Tweener = imports.ui.tweener; const OPEN_AND_CLOSE_TIME = 0.1; +const FADE_IN_BUTTONS_TIME = 0.33; const FADE_OUT_DIALOG_TIME = 1.0; const State = { @@ -98,6 +99,8 @@ ModalDialog.prototype = { }, setButtons: function(buttons) { + let hadChildren = this._buttonLayout.get_children() > 0; + this._buttonLayout.destroy_children(); this._actionKeys = {}; @@ -137,6 +140,22 @@ ModalDialog.prototype = { this._actionKeys[key] = action; i++; } + + // Fade in buttons if there weren't any before + if (!hadChildren && i > 0) { + this._buttonLayout.opacity = 0; + Tweener.addTween(this._buttonLayout, + { opacity: 255, + time: FADE_IN_BUTTONS_TIME, + transition: 'easeOutQuad', + onComplete: Lang.bind(this, function() { + this.emit('buttons-set'); + }) + }); + } else { + this.emit('buttons-set'); + } + }, _onKeyPressEvent: function(object, keyPressEvent) {